#pragma once
#include "../../../EdgeGameCore/BaseGameComponent.h"
#include "../../../EdgeMath/Vectors.h"
#include "../../../EdgeGraphics\ConstantBuffer.h"
#include "../Ui/MenuManager.h"
class Camera;
class ChunkManager;

// The game state in which gameplay occours
class GameplayState : public BaseGameComponent
{
	Camera* camera;

	MenuManager* menus = nullptr;

	GameplayState(void);
	virtual ~GameplayState(void);

	static GameplayState* instance;
public:
	// implament abstract functions

	virtual void Update(float dt) override;

	virtual void Draw(void) override;

	MenuManager* getMenus(void) const { return menus; }

	Camera* getCamera(void) const { return camera; }

	static GameplayState* GetInstance(void);
};